#!/bin/sh

# Slackware build script for eduke32

# Written by B. Watson (yalhcru@gmail.com)

# Comment next line to skip building the Build utilities:
BUILD_UTILS=${BUILD_UTILS:-"yes"}

PRGNAM=eduke32
VERSION=${VERSION:-20080709}
SRCDIR=${PRGNAM}_src_${VERSION}
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}	# For consistency's sake, use this
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}	# Drop the package in /tmp

# TODO: fix the Makefiles so they'll honor external CFLAGS.
# The default flags include -O2 already, which is good enough for now.
if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
else
  echo "Sorry, $PRGNAM can't be compiled on $ARCH with this script (yet)"
  exit 1
fi

set -e

rm -rf $PKG
mkdir -p $TMP $PKG/usr/libexec/$PRGNAM $PKG/usr/bin \
			$PKG/usr/share/games/$PRGNAM $OUTPUT
cd $TMP
rm -rf $SRCDIR
unzip $CWD/$SRCDIR.zip

cd $SRCDIR
chown -R root:root .
find . \
 \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
 -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
 -exec chmod 644 {} \;

cd eduke32
make
# There is no "make install"; binary is already stripped

for i in eduke32 mapster32; do
	cat $i > $PKG/usr/libexec/$PRGNAM/$i
	chown root:root $PKG/usr/libexec/$PRGNAM/$i
	chmod 0755 $PKG/usr/libexec/$PRGNAM/$i
done

# Wrapper script to make things behave nicer
cat $CWD/eduke32.wrapper > $PKG/usr/bin/eduke32
chown root:root $PKG/usr/bin/eduke32
chmod 755 $PKG/usr/bin/eduke32
( cd $PKG/usr/bin ; ln -s eduke32 mapster32 )

# Mapster help files
cp *.hlp *.HLP names.h tiles.cfg $PKG/usr/share/games/eduke32

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a ChangeLog* *.txt *.TXT *.sample *.cfg \
		$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cp $CWD/README_game_data.txt $PKG/usr/doc/$PRGNAM-$VERSION
( cd $PKG/usr/share/games/$PRGNAM
  ln -s ../../../doc/$PRGNAM-$VERSION/README_game_data.txt . )

# Icon and desktop link
mkdir -p $PKG/usr/share/applications
cp $CWD/mapster32.desktop $CWD/eduke32.desktop $PKG/usr/share/applications
mkdir -p $PKG/usr/share/pixmaps
cp $CWD/eduke32.png $PKG/usr/share/pixmaps

# slack-desc
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

# Build the utilities, if requested.
if [ "$BUILD_UTILS" = "yes" ]; then
  cd $TMP/$SRCDIR/build
  make utils

  for i in kextract kgroup transpal wad2art wad2map; do
    strip $i
    cat $i > $PKG/usr/bin/$i
    chown root:root $PKG/usr/bin/$i
    chmod 0755 $PKG/usr/bin/$i
  done

  cp doc/* $PKG/usr/doc/$PRGNAM-$VERSION
  echo "$PRGNAM: This package includes the Build engine utiliies (kextract et al)" >> $PKG/install/slack-desc
fi

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
